package br.com.guiav6.sisguia.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.faces.model.SelectItem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.guiav6.sisguia.dao.EspecialidadeDao;
import br.com.guiav6.sisguia.dao.TipoServicoDao;
import br.com.guiav6.sisguia.entity.Especialidade;
import br.com.guiav6.sisguia.entity.TipoServico;
import br.com.guiav6.sisguia.enuns.Bairro;
import br.com.guiav6.sisguia.enuns.Bloco;
import br.com.guiav6.sisguia.service.ComboService;

@Service("comboService")
public class ComboServiceImpl implements ComboService {
	
	@Autowired(required = true)
	private TipoServicoDao tipoServicoDao;
	
	@Autowired(required = true)
	private EspecialidadeDao especialidadeDao;

	@Override
	public List<SelectItem> findServicos() {
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for(TipoServico servico : tipoServicoDao.findAll()){
			lista.add(new SelectItem(servico.getId(), servico.getNome()));
		}
		return lista;
	}

	@Override
	public List<SelectItem> findEspecialidades(Long idTipoServico) {
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for(Especialidade espec : especialidadeDao.findEspecialidadeByTipoServico(idTipoServico)){
			lista.add(new SelectItem(espec.getId(), espec.getNome()));
		}
		return lista;
	}

	@Override
	public List<SelectItem> findBairros() {
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for(Bairro bairro: Bairro.values()){
			lista.add(new SelectItem(bairro.getId(), bairro.getDescricao()));
		}
		return lista;
	}

	@Override
	public List<SelectItem> findBlocos() {
		List<SelectItem> lista = new ArrayList<SelectItem>();
		for(Bloco bloco: Bloco.values()){
			lista.add(new SelectItem(bloco.getId(), bloco.getLetra()));
		}
		return lista;
	}

}